package com.nodecollege.cloud.service;

import com.nodecollege.cloud.common.model.po.UpmsOrg;
import com.nodecollege.cloud.common.model.vo.OrgTreeVO;

import java.util.List;

/**
 * @author LC
 * @date 2019/12/11 18:23
 */
public interface OrgService {

    /**
     * 查询组织机构树
     *
     * @param upmsOrg
     * @return
     */
    List<OrgTreeVO> getOrgTree(UpmsOrg upmsOrg);

    /**
     * 新增组织机构
     *
     * @param upmsOrg
     */
    void addOrg(UpmsOrg upmsOrg);

    /**
     * 修改组织机构
     *
     * @param upmsOrg
     */
    void updateOrg(UpmsOrg upmsOrg);

    /**
     * 删除组织机构
     *
     * @param upmsOrg
     */
    void delOrg(UpmsOrg upmsOrg);

    /**
     * 查询组织机构缓存
     * 查询组织机构缓存
     *
     * @param tenantId
     * @return
     */
    List<UpmsOrg> getOrgListCacheByTenantId(Long tenantId);

    /**
     * 清除组织机构缓存
     *
     * @param tenantId
     */
    void clearOrgListCache(Long tenantId);

    /**
     * 查询组织机构列表
     * @param upmsOrg
     * @return
     */
    List<UpmsOrg> getOrgList(UpmsOrg upmsOrg);
}
